﻿/***************************************************************************
 * 文件名：KYProjChangeMgr
 * 功能：
 * 说明：
 * -------------------------------------------------------------------------
 * 创建时间：2024/7/4 10:04:47
 * 创建人：林远
 * 邮箱： 17682102673@qq.com
 * =========================================================================
 *
 * 修改人：   
 * 修改时间：   
 * 修改说明：   
 ***************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LY
{
    internal class ProjChangeMgr
    {
        public static void ExecuteChange(string sourceType)
        {
            //根据SourceType获取接口实例类型(工厂方法)
            var instance = new object() as IProjChange;

            var sourceList = instance.GetChangeList();

            //执行转换，将变更源的信息如项目编号、人员编号、变更类型映射需要的数据类型
            IEnumerable<ProjChangeResultModel> targetList = instance.Parser(sourceList);

            var success = instance.ExecuteChange(targetList);
            if (success)
            {
                //变更成功后执行（例如通知领导查看、通知项目负责人项目信息变更成功、记录项目变更日志……）
                instance.Successed();
            }
            else
            {
                //失败后执行（例如通知科研系统变更失败、通知项目负责人项目信息变更失败……）
                instance.Failed();
            }
        }
    }
}
